package com.csl.jmu.demo.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.io.Serializable;
import java.util.List;

/**
 * <pre>
 * 描述：用户信息
 * </pre>
 *
 * @类名：com.csl.jmu.demo.entity.UserInfo
 * @作者： 1410HL0236
 * @创建日期: 2019/11/18 14:55
 */
@Setter
@Getter
@Entity
public class UserInfo implements Serializable {
  private static final long serialVersionUID = -3320971805590503443L;

  @Id
  @GeneratedValue
  private Long id;
  /**
   * 登录账号唯一
   */
  @Column(unique = true)
  private String username;
  /**
   * 名称(匿名或真实姓名),用于UI显示
   */
  private String name;
  /**
   * 密码
   */
  private String password;
  /**
   *  加密密码的盐
   */
  private String salt;

  @JsonIgnoreProperties(value = {"userInfos"})
  @ManyToMany(fetch = FetchType.EAGER) // 立即从数据库中进行加载数据
  @JoinTable(name = "SysUserRole", joinColumns = @JoinColumn(name = "uid"), inverseJoinColumns = @JoinColumn(name = "roleId"))
  private List<SysRole> roles; // 一个用户具有多个角色


  public String getCredentialsSalt() {
    return username + salt;
  }

}
